Systems for logging data transfers through communications networks are well known. Typically, such systems take the form of a processor and a data storage unit, wherein the processor records each data transfer to the storage unit to a file that records events. A wide range of data corresponding to the data transfer may be recorded, including, inter alia, the origin of the data, the destination of the data, the path of the data, and the actual data transferred. The “granularity” of what is recorded—that is, the breadth and depth of information actually recorded for each data transfer—is typically chosen as a design parameter for a data logging system. In this way, for each data transfer that occurs, the same amount of information related to the data transfer is logged for each and every data transfer.
While such data logging systems are effective for making a record of data transfers, they do not provide facilities for replaying the data transfer through the system when an error condition arises. Even if such a facility was available in a traditional system, the replaying of the transfer may adversely effect system performance and may also adversely effect system components. What is needed is a system that not only records information related to the movement of data, but also replays the error-prone data transfer through the system in a nonvolatile way that does not adversely effect system elements. What is also needed is a system with these features that also facilitates troubleshooting of error conditions.